/*
 * ReserveTable.h
 *
 *  Created on: 2009-8-27
 *      Author: ws
 */

#ifndef RESERV_TABLE_H_
#define RESERV_TABLE_H_

#include<vector>
#include"UsageFU.hpp"

class ReserveTable {
private:
	/*
	 * for four cluster's private resource defines;
	 * note that the bus is the private resource of the cluster;
	 */
	std::vector<std::vector< int >  > private_reserver;
	/*
	 * for public resource ,such as immediate number channel
	 */
	std::vector<int> public_reserver;

	int & _get_fu_left_num(enum Core c, enum _Function_Type ft);
	const int& _get_fu_left_num(enum Core c, enum _Function_Type ft)const;
public:
	ReserveTable operator = (const ReserveTable & rev)const;
	ReserveTable();
	virtual ~ReserveTable();
	bool submit_option(enum Core c , enum _Function_Type ft);
};

#endif /* RESERV_TABLE_H_ */
